An algorithm for improving accuracy of a prefetch has hitherto been studied and researched. Especially, a circuit to request an automatically generated prefetch address to be prefetched is called a hardware prefetch circuit. The hardware prefetch circuit detects that a memory access address issued by a processor has regularity when executing an instruction, and generates a prefetch request for data predicted to be accessed in a near future. Exemplified as a hitherto used technique is a technique by which the hardware prefetch circuit generates the prefetch request by detecting an access to a consecutive address and the address at a fixed interval called “stride”, and presuming an address to be accessed next. This exemplified conventional technique is called a “stride prefetch”. However, after finding a tendency (an address pattern) of the address to be accessed next, it follows that the conventional prefetch technique continuously generates the prefetch. As a result, it may happen that prefetch request target data is continuously hit in a cache.